/**
 * Copyright (c) 2002-2012 旭鸣信息
 * All rights reserved. 
 * File：IFrontUserDao.java
 * History: Dec 27, 2012: Initially created, liuzhi.
 */
package com.xteam.ecsystem.dao;

import java.util.List;

import com.xteam.ecsystem.entities.BaseInfoItem;
import com.xteam.ecsystem.entities.BaseMemberBase;
import com.xteam.ecsystem.entities.BasePasswordQuestion;

/**
 * 前端用户数据访问接口
 * @author liuzhi
 *
 */
public interface IFrontUserDao {

	/**
	 * 获得用户密保问题列表
	 * @author liuzhi Dec 27, 2012
	 * @return
	 */
	public List<BasePasswordQuestion> getQuestionList();
	
	/**
	 * 获得用户注册资料项目
	 * @author liuzhi Dec 27, 2012
	 * @return
	 */
	public List<BaseInfoItem> getMemberItemList();
	
	/**
	 * 获得指定用户所有用户资料项目
	 * @author liuzhi Dec 27, 2012
	 * @return list
	 */
	@SuppressWarnings("unchecked")
	public List getAllMemberItems(String bmiMember);
	
	/**
	 * 新增或修改会员信息
	 * @author liuzhi Jan 5, 2013
	 * @param obj
	 * @param id
	 * @return 会员编号
	 */
	public String saveOrUpdateBMB(Object obj, String id);
	
	/**
	 * 新增或修改会员资料信息
	 * @author liuzhi Jan 5, 2013
	 * @param obj
	 * @param id
	 */
	public void saveOrUpdateBMI(Object obj, String id);
	
	/**
	 * 批量保存实体对象
	 * @author liuzhi Jan 5, 2013
	 * @param listObj
	 */
	@SuppressWarnings("unchecked")
	public void saveMuchObj(List listObj);
	
	/**
	 * 根据会员邮箱获得会员信息，亦可验证会员邮箱
	 * @author liuzhi Jan 6, 2013
	 * @param bmbEmail
	 * @return
	 */
	public BaseMemberBase getBMBByEmail(String bmbEmail);
	
	/**
	 * 验证会员昵称是否存在
	 * @author liuzhi Jan 6, 2013
	 * @param bmbEmail
	 * @return
	 */
	public BaseMemberBase getBMBByNick(String bmbNick);
	
	/**
	 * 根据激活码获取会员信息，亦可验证激活码是否失效
	 * @author liuzhi Jan 7, 2013
	 * @param bmbActivator
	 * @return
	 */
	public BaseMemberBase getBMBByActCode(String bmbActivator);
	
	/**
	 * 根据会员昵称和邮箱获得会员信息，亦可作为密码找回时用户信息验证
	 * @author liuzhi Jan 8, 2013
	 * @param bmbNick
	 * @param bmbEmail
	 * @return
	 */
	public BaseMemberBase getBMBByNickAEmail(String bmbNick, String bmbEmail);
	
	/**
	 * 根据会员编号获得会员信息
	 * @author liuzhi Jan 8, 2013
	 * @param bmbId
	 * @return
	 */
	public BaseMemberBase getBMBById(String bmbId);
	
	/**
	 * 会员身份验证（登录）
	 * @author liuzhi Jan 8, 2013
	 * @param emailOrUserName
	 * @param bmbPassword
	 * @return
	 */
	public BaseMemberBase getBMBByEmailAPwd(String emailOrUserName, String bmbPassword);
	
	/**
	 * 根据密保问题id获得密保问题对象
	 * @author liuzhi Feb 5, 2013
	 * @param bpqId
	 * @return
	 */
	public BasePasswordQuestion getBpqById(String bpqId);
	
	/**
	 * 验证密保问题答案
	 * @author liuzhi Feb 6, 2013
	 * @param bmbId
	 * @param bmbAnswer
	 * @return
	 */
	public BaseMemberBase getBMBByBmbAnswer(String bmbId, String bmbAnswer);
	
	/**
	 * 根据会员编号删除会员资料信息
	 * @author liuzhi Mar 7, 2013
	 * @param bmiMember
	 */
	public void delBmiByMemberId(String bmiMember);
	
	/**
	 * 将购物车中的游客身份修改为登录用户身份
	 * @author liuzhi Mar 7, 2013
	 * @param cartUserId
	 * @param loginUserId
	 */
	public void updateUserStatus(String loginUserId, String cartUserId);

}
